import { defineStore } from 'pinia'
import { ref } from 'vue-demi'

export const useMicroAppsStore = defineStore('microApps', () => {
  // 当前激活的微应用
  const currentApp = ref('')

  // 微应用加载状态
  const loading = ref(false)

  // 微应用错误状态
  const error = ref<Error | null>(null)

  // 设置当前微应用
  function setCurrentApp(appName: string) {
    currentApp.value = appName
  }

  // 设置加载状态
  function setLoading(status: boolean) {
    loading.value = status
  }

  // 设置错误状态
  function setError(err: Error | null) {
    error.value = err
  }

  // 重置状态
  function reset() {
    currentApp.value = ''
    loading.value = false
    error.value = null
  }

  return {
    currentApp,
    loading,
    error,
    setCurrentApp,
    setLoading,
    setError,
    reset,
  }
})
